import { _decorator, Component, Node, Collider2D } from 'cc';
import { GameTags } from '../constants/GameConstants';

const { ccclass, property } = _decorator;

/**
 * 地形系统
 * 
 * 功能：
 * 1. 管理游戏地形
 * 2. 处理地形生成和更新
 * 3. 控制地形效果
 * 4. 提供地形信息查询
 * 
 * 特点：
 * 1. 程序化地形生成
 * 2. 地形类型管理
 * 3. 动态地形更新
 * 4. 地形碰撞检测
 */
@ccclass('TerrainSystem')
export class TerrainSystem extends Component {
    @property(Node)
    private waterAreas: Node[] = [];

    @property(Node)
    private airZones: Node[] = [];

    start() {
        this.initTerrainAreas();
    }

    private initTerrainAreas() {
        // 设置水域区域的标签和碰撞
        this.waterAreas.forEach(area => {
            area.name = GameTags.WATER;
            const collider = area.getComponent(Collider2D);
            if (collider) {
                collider.tag = GameTags.WATER;
                collider.sensor = true; // 设置为触发器
            }
        });

        // 设置空中区域的标签和碰撞
        this.airZones.forEach(zone => {
            zone.name = GameTags.AIR_ZONE;
            const collider = zone.getComponent(Collider2D);
            if (collider) {
                collider.tag = GameTags.AIR_ZONE;
                collider.sensor = true;
            }
        });
    }
} 